Bandwidth demand on telecommunications networks is increasing dramatically. In response, the International Telecommunications Union (ITU) has standardized the Optical Transport Network (OTN), which is a dense wavelength division multiplexing (DWDM) network. The rates and formats of OTN constructs such as optical channel transport unit (OTU)k and optical channel data unit (ODU)k are defined in ITU-T G.709.
ITU-T G.709 has a defined number of ODUk frames; k=0, 1, 2, 2e, 3 and 4, in order of increasing rates. A lower rate ODUj can be multiplexed into a higher rate ODUk. Multi-level multiplexing is allowed. For example, eight ODU0 streams may be multiplexed into an ODU2, which may, in turn, be multiplexed along with nine other ODU2 streams, into an ODU4. FIGS. 1A and 1B show an OTN terminating device that supports two level of multiplexing.
The multiplexing of Low Order (LO) ODUj/ODUflex clients into a High Order (HO) ODUk carrier is performed in two logical steps, Rate Justification and Multiplexing. Rate Justification encodes the rate of each LO ODUj in relation to an optical channel data tributary unit (ODTU) using either AMP (Asynchronous Mapping Procedure) or GMP (Generic Mapping Procedure) as defined in ITU-T G.709. The ODTU streams are phase locked to HO ODUk carrier. Then, the resultant ODTUs are multiplexed into the HO Server Multi-frame of the HO OPUk. An example of multiplexing an ODU0, an ODU1 and an ODUflex occupying five TribSlots is shown in FIG. 2.
The de-multiplexing of LO ODUj/ODUflex clients from a HO ODUk carrier is also performed in two logical steps, De-multiplexing and Rate Justification. The De-multiplexing step extracts a set of ODTU streams, one for each LO ODUj, from the HO ODUk. The ODTU streams are phase locked to the HO ODUk carrier. The Rate Justification step recovers the rate of each LO ODUj in relation to its ODTU by decoding the AMP or GMP Justification Controls, as defined in ITU-T G.709. An example of de-multiplexing an ODU0, an ODU1 and an ODUflex occupying five TribSlots from a High-Order ODU2 is shown in FIG. 3.
The individual LO channels are not frame aligned with the HO channel frame. Each LO channel is mapped in an ODTU which is a rate justified structure that fills the Tributary Slots allotted to the LO channel within the HO ODUk. The first byte of each LO ODTU is aligned with the HO ODUk Tributary Multi-frame. Bytes of an ODTU are grouped into M-byte words, where M is the number of TribSlots allocated to the ODTU. For identifying Data vs Stuff words in GMP, words are numbered using an index j. The first word is given j=1.
With current technologies, for a device that is capable of processing a 100 Gbps datastream, the internal parallel databus width (W) is expected to range from 32 to 64 bytes. W is expected to grow for 400 Gbps and 1 Tbps bandwidth devices of the future. The number of Tributary Slots (M) allocated to a LO ODUk in the HO carrier varies. Example values of M are as follows: ODU1: M=2; ODU2: M=8; ODU3: M=32; ODU4: M=80; and ODUflex: M=Variable.
FIGS. 4A and 4B show an ODU2 multi-frame with three LO channels, an ODU0, ODU1 and ODUflex5. The Tributary Slots in the HO are split into a repeating sequence of LO TS allocated based on rate. ODU0=1 TS (Channel A), ODU1=2 TS (Channel B), and ODUflex5=5 TS (Channel C). The label within each byte shows the client channel, the GMP word index (j), and the byte count within the GMP word, inside parenthesis.
When De-multiplexing, the ODU overhead is removed and the resultant OPU (columns 17-3824) are demultiplexed into the Optical Data Transport Units (ODTU). An ODTU2.1 is shown in FIG. 5 (channel A), ODTU12 in FIG. 6 (channel B) and ODTU2.5 in FIG. 7 (channel C).
LO clients can be added or removed from a HO carrier without affecting any other LO clients. In addition, in ITU-T G.7044, a LO ODUflex Generic Framing Procedure (GFP) channel can be hitlessly resized without affecting any other LO clients.
GMP is a generic mapping procedure defined in ITU-T G.709. GMP is used to match the rate of the LO ODUj to the ODTU payload area. The ODTU bytes are then mapped into the OPUk Tributary Slots. Justification Control bytes in the GMP overhead specify the number of M-byte words in each ODTU frame that carry LO ODUj bytes (known as Data Words). The remaining words in the ODTU frame are filled with Stuff Words. The distribution of Data and Stuff words are given by Equations 1 and 2 below.
In Equation 1 and Equation 2, Cm is the number of client Data Words mapped into the payload area of the Server allocated to that client. Each M-byte word is indexed by j, where j=1 to Pm,server M-byte words. Pm,server is the number of words in the ODTU frame. A word is a client Data Word when Equation 1 is satisfied, and is a Stuff Word when Equation 2 is satisfied. An example of how Data and Stuff words may be distributed in an ODTU frame is shown in FIG. 8.client data (D): if(j×Cm)mod Pm,server<Cm  Equation 1stuff (S): if(j×Cm)mod Pm.server≧Cm.  Equation 2
A known implementation of a multiplexer follows the G.709 definitions directly and is shown in FIGS. 9A and 9B. A set of LO ODU clients are delivered over a W-byte datapath in a TDM (time division multiplex) fashion. The incoming data of each LO ODUj is stored in separate FIFOs. Each of the LO ODU clients is multiplexed into a HO ODUk carrier of M Tributary Slots. Each LO ODU client is allocated M of the T Tributary Slots in the HO Server multi-frame (MF), based on its nominal rate. The LO channel data is rate justified using the Generic Mapping Procedure (GMP). The number and position of the justification stuff bytes is calculated with a channelized Time Division Multiplexing GMP engine. The resultant number of data bytes needed and justification pattern is used by the Expander block to expand the data by inserting stuff bytes. The justified data, with width of W bytes, is stored in a separate justified FIFO per LO channel.
At the HO Server side, the TDM databus may carry words from multiple HO ODUk carriers. Each W-byte word contains a certain number of bytes from a set of LO ODU client bytes associated with that HO ODUk carrier. The bytes required are read from the corresponding LO justified FIFOs and then inserted into the correct byte locations of the HO carrier word using the W:1 multiplexers. This implementation is very gate intensive as most elements are replicated by the number of potential LO ODU clients. For example, an ODU4 or a set of ten ODU2s can consist of up to 80 LO ODU0 clients.
A known implementation of a de-multiplexer follows the G.709 definitions directly and is shown in FIG. 10. A set of HO ODUk carriers are delivered over a W-byte datapath (in a TDM (time division multiplex) fashion. The incoming data is broadcast to a set of N De-multiplex blocks, one for each potential LO ODU client. For example, a HO ODU4 or a set of ten HO ODU2s may consist of up to 80 LO ODU0 clients. Each De-Multiplex block extracts bytes in the HO ODUk words that belong to the associated LO ODU client, and assembles them into W-byte words. The words are stored in separate ODTU FIFOs, one for each LO ODU client. The LO ODU client words contain both Data and Stuff bytes. A scheduler reads from each ODTU FIFO at a rate proportional to the number of Tributary Slots assigned to the LO ODU client. The words reads from the ODTU FIFO are passed to the GMP processor to identify Data and Stuff bytes. A typical implementation of the GMP block is to first identify the GMP offset (j) of each byte and from that determine if it is a client data (D) or stuff (S) using Equation 1 and Equation 2. For a datapath width of W bytes, up to W decisions are required per clock cycle. The Compactor block removes the Stuff bytes and constructs W-byte words of client data bytes.
As lines rates go up, the container sizes increase but the granularity remains the same. The systems now have ODU4 carriers with 80 Tributary Slots and ODUFIex containers which occupy a variable number of Tributary Slots. The Generic Mapping Procedure implementation must accommodate many different rates, over multiple clients, running in Time Division Multiplexed channels.
The implementation must also be flexible to add or remove channels, and do ODUflex hitless resizing. This requires that the justification patterns to be changed on the fly and coordinated between the justification and multiplexing stages. The data that is in FIFOs cannot be corrupted between justification contexts, and more importantly information pertaining to the context must pass through FIFOs.
It is, therefore, desirable to provide an improved approach to justification insertion/removal.